package com.gxa.medical.mapper;

import com.gxa.medical.pojo.Assistant;
import com.gxa.medical.pojo.Symptom;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Dusen
 * @date 2022/6/10 10:14
 */
public interface DoctorSymptomMapper {

    /**
     * 查询诊断内容中 发作类型	(局灶性的全部选项)
     * Se   发作类型
     * From     来自哪
     * Focal    局灶性
     * @return 返回结果的集合
     */
    List<Symptom> selectSeFromFocal();


    /**
     * 查询诊断内容中  综合症 (新生儿期的全部选项)
     * Syn  综合症
     * From 来自哪个分支
     * Newborh  新生儿期
     * @return 返回结果的集合
     */
    List<Symptom> selectSynFromNewborn();

    // TODO 诊断内容中 发作类型和综合征的其他分支 还需要和前端一起商量内置的选项数据



    /**
     * 将选中的诊断内容选项 添加到关联表中
     * @param userId    患者的id
     * @param symptomId     具体选项的id
     * @return  返回影响的行数
     */
    Integer addUserSymptom(@Param("userId") Integer userId,@Param("symptomId") Integer symptomId);


    /**
     * 查询辅助检查中	脑电图选项	发作性异常分支中的选项详情
     * Ct   脑电图异常
     * From 来自哪个分支
     * Have 发作性异常
     * @return 返回结果的集合
     */
    List<Assistant> selectCtFromHave();


    /**
     * 查询辅助检查中	脑电图选项	发作性异常分支中的选项详情
     * Ct   脑电图异常
     * From 来自哪个分支
     * Act 背景活动异常
     * @return 返回结果的集合
     */
    List<Assistant> selectCtFromAct();



    /**
     * 查询辅助检查中	脑电图选项	发作性异常分支中的选项详情
     * Ct   脑电图异常
     * From 来自哪个分支
     * Other 其他异常
     * @return 返回结果的集合
     */
    List<Assistant> selectCtFromOther();


    /**
     * 查询辅助检查中  核磁/CT选项 所有的选项详情
     * HC   核磁/CT选项
     * @return  返回结果的集合
     */
    List<Assistant> selectHCAll();


    /**
     * 查询辅助检查中  基因选项 详情
     * @return  返回字符串
     */
    List<String> selectDna();


    /**
     * 将患者对应有的脑电图异常 和 核磁/CT异常 和 基因选项 添加进关联表中
     * @param userId    患者id
     * @param ctId  核磁/CT异常的选项id
     * @param dnaId     基因选项id
     * @return  返回影响行数
     */
    Integer addSE(@Param("userId") Integer userId,@Param("ctId")Integer ctId,@Param("dnaId")Integer dnaId);
}
